module.exports = [
  {
    "code": "97542cba-e5d3-41fd-b990-46e9a4a5c5d4",
    "name": "東京 図書館",
    "category": "ACG",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.tokyotosho.info",
    "author": "lanyuanxiaoyao",
    "description": "A BitTorrent Library for Japanese Media",
    "parser": "CSS",
    "rules": {
      "https://www\\.tokyotosho\\.info/search\\.php\\?searchName=true&terms=.+&page=\\d+": {
        "parser": "REGEX",
        "list": {
          "expression": "<tr class=\".*?category_0\">.+?</tr><tr class=\".*?category_0\">.+?</tr>",
          "title": {
            "expression": "<a rel=\"nofollow\".*?bittorrent.*?>(.+?)</a>",
            "attribute": "1",
            "replace": [
              {
                "regex": "<span.*?span>",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": "\\s*Comment: (.+?)<",
            "attribute": "1"
          },
          "author": {
            "expression": "Submitter.*?<a.*?>(.+?)</a>",
            "attribute": "1"
          },
          "dateTime": {
            "expression": "\\s*Date: (.+?)\\s+UTC",
            "attribute": "1"
          },
          "link": {
            "expression": "<a rel=\"nofollow\" href=\"(.+?)\">Details</a>",
            "attribute": "1",
            "prefix": "https://www.tokyotosho.info/"
          },
          "extra": {
            "size": {
              "expression": "\\s*Size: (.+?)\\s+",
              "attribute": "1"
            },
            "magnet": {
              "expression": "href=\"(magnet.+?)\"",
              "attribute": "1"
            }
          }
        },
        "next": {
          "script": "var regex = /(.*)(\\d+)$/\nvar result = params.url.match(regex)\nif (result) {\n    return result[1] + (parseInt(result[2]) + 1)\n}\nreturn ''"
        }
      },
      "https://www\\.tokyotosho\\.info/details\\.php\\?id=\\d+": {
        "text": {
          "expression": "#main > .details > ul",
          "title": {
            "expression": "li.detailsleft:contains(Torrent Name) + li"
          },
          "author": {
            "expression": "li.detailsleft:contains(Submitter) + li:has(a)",
            "replace": [
              {
                "regex": "Search.+",
                "text": ""
              }
            ]
          },
          "dateTime": {
            "expression": "li.detailsleft:contains(Date Submitted) + li"
          },
          "extra": {
            "size": {
              "expression": "li.detailsleft:contains(Filesize) + li"
            }
          }
        },
        "list": {
          "expression": "#main > .details > ul",
          "title": {
            "expression": "li.detailsleft:contains(Torrent Name) + li"
          },
          "content": {
            "expression": "li:contains(Magnet Link) > a",
            "attribute": "href"
          }
        }
      }
    },
    "search": "{home}/search.php?searchName=true&terms={query}&page=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "東京 図書館,tokyotosho",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "43e259b9-abd3-465f-bd22-7bdc8ad907a2",
    "name": "Nyaa",
    "category": "ACG",
    "icon": "",
    "target": "SEARCH",
    "home": "https://nyaa.si",
    "author": "lanyuanxiaoyao",
    "description": "A BitTorrent community focused on Eastern Asian media including anime, manga, music, and more",
    "parser": "CSS",
    "rules": {
      "https://nyaa\\.si/\\?q=.+&p=\\d+": {
        "list": {
          "expression": ".container table.torrent-list tbody > tr",
          "title": {
            "expression": "td[colspan] > a[title]:not(.comments)",
            "attribute": "title"
          },
          "dateTime": {
            "expression": "td:nth-child(5)"
          },
          "link": {
            "expression": "td[colspan] > a[title]:not(.comments)",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": "td:nth-child(4)"
            },
            "view": {
              "expression": "td:nth-child(8)"
            },
            "magnet": {
              "expression": "td:nth-child(3) > a:has(i.fa-magnet)",
              "attribute": "href"
            }
          }
        },
        "next": {
          "expression": "ul.pagination > li.next > a",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://nyaa\\.si/view/\\d+": {
        "text": {
          "expression": ".container > .panel:contains(Magnet)",
          "title": {
            "expression": "h3.panel-title"
          },
          "author": {
            "expression": "a[title=User]"
          },
          "dateTime": {
            "expression": "div[data-timestamp]"
          },
          "extra": {
            "size": {
              "expression": "div.col-md-1:contains(File size) + div"
            }
          }
        },
        "list": {
          "expression": ".container > .panel:contains(Magnet)",
          "title": {
            "expression": "h3.panel-title"
          },
          "content": {
            "expression": ".panel-footer a:contains(Magnet)",
            "attribute": "href"
          }
        }
      }
    },
    "search": "{home}/?q={query}&p=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#view{${i.view}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.link}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Nyaa",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "afee8741-8deb-4a34-8827-7ec0cc4fd651",
    "name": "罗马盘",
    "category": "网盘",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.luomapan.com",
    "author": "lanyuanxiaoyao",
    "description": "网盘资源搜索，就用罗马盘 - 最好用的百度网盘搜索引擎",
    "parser": "CSS",
    "rules": {
      "https://www\\.luomapan\\.com/search\\?keyword=.+&page=\\d+": {
        "list": {
          "expression": ".main .search-result .result-inner .result-wrapper .roma-item-wrapper",
          "title": {
            "expression": ".roma-info > h1.roma-title > a"
          },
          "description": {
            "expression": ".roma-info > .roma-detail-wrap"
          },
          "dateTime": {
            "expression": ".roma-info > .roma-meta > .meta-it:contains(时间)",
            "replace": [
              {
                "regex": "时间：\\s*",
                "text": ""
              }
            ]
          },
          "link": {
            "expression": ".roma-info > h1.roma-title > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": ".roma-info > .roma-meta > .meta-it:contains(大小)",
              "replace": [
                {
                  "regex": "大小：\\s*",
                  "text": ""
                }
              ]
            }
          }
        },
        "next": {
          "expression": ".pager-wrapper > .pc-pager-wrapper > a:contains(下一页)",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://www\\.luomapan\\.com/detail/.+": {
        "text": {
          "expression": "#info",
          "title": {
            "expression": "h1.filename"
          },
          "dateTime": {
            "expression": ".roma-meta > .meta-item:contains(时间)",
            "replace": [
              {
                "regex": "分享时间\\s*",
                "text": ""
              }
            ]
          },
          "extra": {
            "size": {
              "expression": ".roma-meta > .meta-item:contains(大小)",
              "replace": [
                {
                  "regex": "资源大小\\s*",
                  "text": ""
                }
              ]
            },
            "password": {
              "expression": ".roma-meta > .meta-item:contains(密码)",
              "replace": [
                {
                  "regex": "提取密码\\s*",
                  "text": ""
                }
              ]
            }
          }
        },
        "list": {
          "expression": ".detail-content",
          "title": {
            "expression": "#info h1.filename"
          },
          "content": {
            "expression": "#statement > .button-wrap > .button-inner > a",
            "attribute": "href"
          }
        }
      }
    },
    "search": "{home}/search?keyword={query}&page=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "罗马盘"
    }
  },
  {
    "code": "52e8bdc3-84bc-495c-a406-b053a94fc825",
    "name": "56网盘",
    "category": "网盘",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.56wangpan.com",
    "author": "lanyuanxiaoyao",
    "description": "专业网盘搜索引擎-56网盘搜索为您带来最佳网盘搜索体验",
    "parser": "CSS",
    "rules": {
      "https://www\\.56wangpan\\.com/search/kw.+pg\\d+": {
        "list": {
          "expression": ".content .sellListContent > li",
          "title": {
            "expression": "div.info > .title > a"
          },
          "description": {
            "expression": "div.info > .address"
          },
          "author": {
            "expression": "div.info > .rInfo > .sharer"
          },
          "dateTime": {
            "expression": "div.info > .rInfo > .feed_time"
          },
          "link": {
            "expression": "div.info > .title > a",
            "attribute": "href",
            "prefix": "{home}"
          }
        },
        "next": {
          "expression": ".content .contentBottom .list-page-box > a:contains(下一页)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "{home}/search/kw{query}pg1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "56网盘"
    }
  },
  {
    "code": "bb32f4ff-06ad-4709-b0c3-fb648ea210bd",
    "name": "小白盘",
    "category": "网盘",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.xiaobaipan.com",
    "author": "lanyuanxiaoyao",
    "description": "小白盘帮收录了大量的网盘资源,页面清新，实时检查失效资源.帮您省心快速找到想要的电影,电视剧,小说,文档,音乐,软件,种子等热门网盘资源",
    "parser": "CSS",
    "rules": {
      "https://www\\.xiaobaipan\\.com/list-.+-p\\d+\\.html": {
        "list": {
          "expression": ".main-container .category-list > .item-list:has(div[fid])",
          "title": {
            "expression": "div[fid] h4.job-title > a"
          },
          "description": {
            "expression": "div[fid] .jobs-desc"
          },
          "author": {
            "expression": "div[fid] h5.company-title > a"
          },
          "dateTime": {
            "expression": ".info-row > .date",
            "replace": [
              {
                "regex": "分享时间:\\s*",
                "text": ""
              }
            ]
          },
          "link": {
            "expression": "div[fid] h4.job-title > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": ".info-row > .salary"
            },
            "view": {
              "expression": ".info-row > .item-location:contains(查看)"
            }
          }
        },
        "next": {
          "expression": ".pagination-bar > .pagination > li > a:contains(>>)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "{home}/list-{query}-p4.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#size{${i.size}}#view{${i.view}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "小白盘"
    }
  },
  {
    "code": "0d3e0c9f-a9c9-40c5-999a-e67519aabac4",
    "name": "小可搜搜",
    "category": "网盘",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.xiaokesoso.com",
    "author": "lanyuanxiaoyao",
    "description": "小可搜搜，有你更方便",
    "parser": "CSS",
    "rules": {
      "https://www\\.xiaokesoso\\.com/s/search\\?q=.+&currentPage=\\d+": {
        "list": {
          "expression": ".container .result-box .row .document-piece:not(:contains(争议))",
          "title": {
            "expression": ".media-body > h4.media-heading > a",
            "replace": [
              {
                "regex": "\\n\\s*",
                "text": ""
              },
              {
                "regex": "\\n+|\\r+",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": ".media-bottom .file-list-contain",
            "replace": [
              {
                "regex": "^\\r|\\r$",
                "text": ""
              }
            ]
          },
          "author": {
            "expression": ".media-bottom span:nth-child(2) button",
            "replace": [
              {
                "regex": "\\s",
                "text": ""
              }
            ],
            "script": "var regex = /(.+)分享\\s*(.+)/\nvar result = text.match(regex)\nif (result) {\n    return result[1]\n}\nreturn ''"
          },
          "dateTime": {
            "expression": ".media-bottom span:nth-child(1) button",
            "replace": [
              {
                "regex": "&nbsp;",
                "text": " "
              }
            ],
            "script": "var regex = /(\\d{4}-\\d{2}-\\d{2})\\s(.+)/\nvar result = text.match(regex)\nif (result) {\n    return result[1]\n}\nreturn ''"
          },
          "link": {
            "expression": ".media-body > h4.media-heading > a",
            "attribute": "href",
            "prefix": "{home}",
            "replace": [
              {
                "regex": "\\n\\s*",
                "text": ""
              },
              {
                "regex": "\\n+|\\r+",
                "text": ""
              }
            ]
          },
          "extra": {
            "size": {
              "expression": ".media-bottom span:nth-child(1) button",
              "replace": [
                {
                  "regex": "&nbsp;",
                  "text": " "
                }
              ],
              "script": "var regex = /(\\d{4}-\\d{2}-\\d{2})\\s(.+)/\nvar result = text.match(regex)\nif (result) {\n    return result[2]\n}\nreturn ''"
            },
            "number": {
              "expression": ".media-bottom span:nth-child(2) button",
              "replace": [
                {
                  "regex": "&nbsp;",
                  "text": " "
                }
              ],
              "script": "var regex = /(.+)分享\\s*(.+)/\nvar result = text.match(regex)\nif (result) {\n    return result[2]\n}\nreturn ''"
            }
          }
        },
        "next": {
          "script": "var regex = /(.+currentPage=)(\\d+)/\nvar result = params.url.match(regex)\nif (result && result.length > 2) {\n    return result[1] + (parseInt(result[2]) + 1)\n}\nreturn ''"
        }
      },
      "https://www\\.xiaokesoso\\.com/info/.+": {
        "text": {
          "expression": ".container .row .detail-box:has(h3)",
          "title": {
            "expression": "h3"
          },
          "dateTime": {
            "expression": "span:contains(时间)",
            "replace": [
              {
                "regex": "时间：",
                "text": ""
              }
            ]
          },
          "extra": {
            "size": {
              "expression": "span:contains(大小)",
              "replace": [
                {
                  "regex": "大小：",
                  "text": ""
                }
              ]
            },
            "number": {
              "expression": "span:contains(文件个数)",
              "replace": [
                {
                  "regex": "文件个数：",
                  "text": ""
                }
              ]
            },
            "password": {
              "expression": "span:contains(密码)",
              "replace": [
                {
                  "regex": "密码：",
                  "text": ""
                }
              ]
            }
          }
        },
        "list": {
          "expression": ".container .row .detail-box:has(h3)",
          "title": {
            "expression": "h3"
          },
          "content": {
            "expression": ".download-erea button",
            "attribute": "data-downloadurl",
            "prefix": "http://norefer.mimixiaoke.com/api/jump?target="
          }
        }
      }
    },
    "search": "{home}/s/search?q={query}&currentPage=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#size{${i.size}}#number{${i.number}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "小可搜搜"
    }
  },
  {
    "code": "98b54ae1-5ac4-43a9-b1e5-83cb64932952",
    "name": "雨花阁",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.yhg66a.xyz",
    "author": "lanyuanxiaoyao",
    "description": "简单好用的BT搜索引擎",
    "parser": "CSS",
    "rules": {
      "https://www\\.yhg66a\\.xyz/search/.+-\\d+\\.html": {
        "list": {
          "expression": "#wall div.search-item",
          "title": {
            "expression": ".item-title h3"
          },
          "dateTime": {
            "expression": ".item-bar > span:contains(创建时间) b"
          },
          "link": {
            "expression": ".item-title h3 > a",
            "attribute": "href",
            "replace": [
              {
                "regex": "^",
                "text": "https://www.yhg222.xyz"
              }
            ]
          },
          "extra": {
            "size": {
              "expression": ".item-bar > span:contains(文件大小) b"
            },
            "view": {
              "expression": ".item-bar > span:contains(下载热度) b"
            },
            "number": {
              "expression": ".item-bar > span:contains(文件数量) b"
            }
          }
        },
        "next": {
          "expression": ".bottom-pager > a:contains(>)",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://www\\.yhg66a\\.xyz/hash/\\d+\\.html": {
        "text": {
          "expression": "#content",
          "title": {
            "expression": "#wall > h2"
          },
          "dateTime": {
            "expression": ".fileDetail .detail-table > tbody > tr:nth-child(2) > td:nth-child(2)"
          },
          "extra": {
            "size": {
              "expression": ".fileDetail .detail-table > tbody > tr:nth-child(2) > td:nth-child(4)"
            }
          }
        },
        "list": {
          "expression": "#wall .fileDetail .detail-panel:has(a.download)",
          "title": {
            "expression": ".panel-header"
          },
          "content": {
            "expression": "a.download",
            "attribute": "href"
          }
        }
      }
    },
    "search": "{home}/search/{query}-1.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#view{${i.view}}#number{${i.number}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "雨花阁",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "2a534ba1-c675-4cd9-80e6-b6e58598ddc4",
    "name": "Torrent Kitty",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "http://www.torkitty.com",
    "author": "lanyuanxiaoyao",
    "description": "Torrent Kitty - Free Torrent To Magnet Link Conversion Service",
    "parser": "CSS",
    "rules": {
      "http://www\\.torkitty\\.com/search/.+/\\d+": {
        "list": {
          "expression": "#archiveResult tr:has(.action > a)",
          "title": {
            "expression": "td.name"
          },
          "dateTime": {
            "expression": "td.date"
          },
          "link": {
            "expression": "td.action > a:contains(Detail)",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": "td.size"
            }
          }
        },
        "next": {
          "expression": ".pagination > a:contains(»)",
          "attribute": "href",
          "script": "var next = params.url.replace(/\\d+$/, text)\nreturn next ? next : ''"
        }
      },
      "http://www\\.torkitty\\.com/information/.+": {
        "text": {
          "expression": "div.wrapper:has(.detailSummary)",
          "title": {
            "expression": "h2"
          },
          "dateTime": {
            "expression": "table.detailSummary tr:nth-child(5) > td"
          },
          "extra": {
            "size": {
              "expression": "table.detailSummary tr:nth-child(4) > td"
            },
            "number": {
              "expression": "table.detailSummary tr:nth-child(3) > td"
            },
            "hash": {
              "expression": "table.detailSummary tr:nth-child(2) > td"
            }
          }
        },
        "list": {
          "expression": "div.center:has(textarea.magnet-link)",
          "content": {
            "expression": "textarea.magnet-link"
          }
        }
      }
    },
    "search": "{home}/search/{query}/1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Torrent Kitty",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "179363b0-2305-4732-8c7d-8ae5777fb151",
    "name": "超人搜索",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.sosogo.online",
    "author": "lanyuanxiaoyao",
    "description": "超人搜索（www.crsoso.com）最好用的磁力链接搜索。",
    "parser": "CSS",
    "rules": {
      "https://www\\.sosogo\\.online/search/.+/page-\\d+\\.html": {
        "list": {
          "expression": ".container .list-view > article.item",
          "title": {
            "expression": "a > h4",
            "replace": [
              {
                "regex": "&nbsp;",
                "text": " "
              }
            ]
          },
          "dateTime": {
            "expression": "a:has(h4) + p",
            "replace": [
              {
                "regex": "&nbsp;",
                "text": ""
              }
            ],
            "script": "var regex = /热度：(.*?)\\s*文件大小：(.*?)\\s*创建时间：(.*?)\\s*文件数量：(.*?)\\s*$/\nvar result = text.match(regex)\nif (result) {\n    return result[3]\n}\nreturn ''"
          },
          "link": {
            "expression": "a:has(h4)",
            "attribute": "href",
            "replace": [
              {
                "regex": "^",
                "text": "https://crso.pw"
              }
            ]
          },
          "extra": {
            "size": {
              "expression": "a:has(h4) + p",
              "replace": [
                {
                  "regex": "&nbsp;",
                  "text": ""
                }
              ],
              "script": "var regex = /热度：(.*?)\\s*文件大小：(.*?)\\s*创建时间：(.*?)\\s*文件数量：(.*?)\\s*$/\nvar result = text.match(regex)\nif (result) {\n    return result[2]\n}\nreturn ''"
            },
            "number": {
              "expression": "a:has(h4) + p",
              "replace": [
                {
                  "regex": "&nbsp;",
                  "text": ""
                }
              ],
              "script": "var regex = /热度：(.*?)\\s*文件大小：(.*?)\\s*创建时间：(.*?)\\s*文件数量：(.*?)\\s*$/\nvar result = text.match(regex)\nif (result) {\n    return result[4]\n}\nreturn ''"
            },
            "view": {
              "expression": "a:has(h4) + p",
              "replace": [
                {
                  "regex": "&nbsp;",
                  "text": ""
                }
              ],
              "script": "var regex = /热度：(.*?)\\s*文件大小：(.*?)\\s*创建时间：(.*?)\\s*文件数量：(.*?)\\s*$/\nvar result = text.match(regex)\nif (result) {\n    return result[1]\n}\nreturn ''"
            }
          }
        },
        "next": {
          "expression": ".pagination > li.next > a",
          "attribute": "href",
          "replace": [
            {
              "regex": "^",
              "text": "https://crso.pw"
            }
          ]
        }
      },
      "https://www\\.sosogo\\.online/hash/.+\\.html": {
        "text": {
          "expression": "section.hash-view-title",
          "title": {
            "expression": "h2"
          }
        },
        "list": {
          "expression": "section.hash-view-download .panel-body .list-unstyled li",
          "title": {
            "expression": ".media-body h4.media-heading"
          },
          "content": {
            "expression": ".media-body h4.media-heading + a",
            "attribute": "href"
          }
        }
      }
    },
    "search": "{home}/search/{query}/page-1.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#view{${i.view}}#number{${i.number}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "超人搜索",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "b9ad410f-d655-4880-ba06-ee0c7cab3fec",
    "name": "搜番",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://soufan.xyz",
    "author": "lanyuanxiaoyao",
    "description": "搜番",
    "parser": "CSS",
    "rules": {
      "https://soufan\\.xyz/s\\?word=.+": {
        "list": {
          "expression": "div.row > div.col-md-6:has(nav) > ul.list-unstyled",
          "title": {
            "expression": "h3.list-title > a"
          },
          "dateTime": {
            "expression": "li.result-resource-meta-info > span.result-resource-meta-info-value:gt(2)"
          },
          "link": {
            "expression": "h3.list-title > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": "li.result-resource-meta-info > span.result-resource-meta-info-value:gt(0)"
            },
            "number": {
              "expression": "li.result-resource-meta-info > span.result-resource-meta-info-value:gt(1)"
            },
            "view": {
              "expression": "li.result-resource-meta-info > span.result-resource-meta-info-value:gt(3)"
            }
          }
        },
        "next": {
          "expression": "div.row > div.col-md-6:has(nav) > nav > ul.pagination > li > a:contains(»)",
          "attribute": "href",
          "prefix": "{home}"
        }
      }
    },
    "search": "{home}/s?word={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#view{${i.view}}#number{${i.number}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "搜番,sofan"
    }
  },
  {
    "code": "b5a76675-1d23-468e-b6a1-6845f217b3e3",
    "name": "BTSOW",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://btsow.cam",
    "author": "lanyuanxiaoyao",
    "description": "BTSOW - The free online torrent file to magnet link conversion, magnet link to torrent file conversion, Search magnet link and Search torrent file.",
    "parser": "CSS",
    "rules": {
      "https://btsow\\.cam/search/.+": {
        "list": {
          "expression": ".container > .data-list > .row:has(a)",
          "title": {
            "expression": "a[title]",
            "attribute": "title"
          },
          "dateTime": {
            "expression": ".date"
          },
          "link": {
            "expression": "a[title]",
            "attribute": "href"
          },
          "extra": {
            "size": {
              "expression": ".size"
            }
          }
        },
        "next": {
          "expression": "ul.pagination a[name=nextpage]",
          "attribute": "href",
          "prefix": "{home}"
        }
      }
    },
    "search": "{home}/search/{query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "BTSOW",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "c4546f52-a602-4776-8e87-f05e01343d09",
    "name": "海盗湾",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://thepiratebay.org",
    "author": "lanyuanxiaoyao",
    "description": "Download music, movies, games, software! The Pirate Bay - The galaxy's most resilient BitTorrent site",
    "parser": "JSON",
    "rules": {
      "https://apibay\\.org/q\\.php\\?q=.+": {
        "list": {
          "expression": "$",
          "title": {
            "expression": "$.name"
          },
          "author": {
            "expression": "$.username"
          },
          "dateTime": {
            "expression": "$.added",
            "suffix": "000",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.id",
            "prefix": "{home}/description.php?id="
          },
          "extra": {
            "number": {
              "expression": "$.num_files"
            },
            "size": {
              "expression": "$.size",
              "script": "if (!text || text === '') return text\nlet size = parseFloat(text)\nif (size < 1024) return size + 'B'\nelse if (size < 1048576) return (size / 1024).toFixed(2) + 'K'\nelse if (size < 1073741824) return (size / 1048576).toFixed(2) + 'M'\nelse if (size < 1099511627776) return (size / 1073741824).toFixed(2) + 'G'\nelse return '' + size"
            }
          }
        }
      }
    },
    "search": "https://apibay.org/q.php?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#size{${i.size}}#number{${i.number}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "海盗湾,The Pirate Bay"
    }
  },
  {
    "code": "aa9c4d00-b805-412f-8bc5-10ce12ea78a2",
    "name": "1377X",
    "category": "综合",
    "icon": "",
    "target": "SEARCH",
    "home": "https://1337x.to",
    "author": "lanyuanxiaoyao",
    "description": "Download verified torrents: movies, music, games, software",
    "parser": "CSS",
    "rules": {
      "https://1337x\\.to/search/.+?/\\d+/": {
        "list": {
          "expression": ".box-info .table-list tbody > tr",
          "title": {
            "expression": "td.name > .icon + a"
          },
          "author": {
            "expression": "td.user"
          },
          "dateTime": {
            "expression": "td.coll-date"
          },
          "link": {
            "expression": "td.name > .icon + a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": "td.size",
              "replace": [
                {
                  "regex": "\\d+$",
                  "text": ""
                }
              ]
            }
          }
        }
      }
    },
    "search": "{home}/search/{query}/1/",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "1377X"
    }
  },
  {
    "code": "9e3d4593-c279-4e02-8891-854c96b1ebee",
    "name": "YTS.MS",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://yts.mx",
    "author": "lanyuanxiaoyao",
    "description": "The official YTS YIFY Movies Torrents website. Download free yify movies torrents in 720p, 1080p and 3D quality. The fastest downloads at the smallest size.",
    "parser": "CSS",
    "rules": {
      "https://yts\\.mx/browse-movies/.+?/all/all/0/latest/0/all": {
        "list": {
          "expression": ".container section .row > div.browse-movie-wrap",
          "title": {
            "expression": ".browse-movie-title"
          },
          "image": {
            "expression": "img.img-responsive",
            "attribute": "src"
          },
          "dateTime": {
            "expression": ".browse-movie-year"
          },
          "link": {
            "expression": ".browse-movie-link",
            "attribute": "href"
          },
          "extra": {
            "location": {
              "expression": ".browse-movie-title > span",
              "replace": [
                {
                  "regex": "^\\[",
                  "text": ""
                },
                {
                  "regex": "\\]$",
                  "text": ""
                }
              ]
            },
            "score": {
              "expression": "h4.rating",
              "replace": [
                {
                  "regex": "\\s*\\/.+$",
                  "text": ""
                }
              ]
            }
          }
        }
      }
    },
    "search": "{home}/browse-movies/{query}/all/all/0/latest/0/all",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#location{${i.location}}#score{${i.score}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "YTS.MS"
    }
  },
  {
    "code": "13e17cb5-ab9d-470d-8a59-13123f5897c8",
    "name": "Zooqle",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://zooqle.com",
    "author": "lanyuanxiaoyao",
    "description": "Download torrents at Zooqle",
    "parser": "CSS",
    "rules": {
      "https://zooqle\\.com/search\\?q=.+": {
        "list": {
          "expression": "table.table-torrents tr:not(thead tr)",
          "title": {
            "expression": "td:nth-child(2) > a.small"
          },
          "dateTime": {
            "expression": "td:nth-child(5)"
          },
          "link": {
            "expression": "td:nth-child(2) > a.small",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "size": {
              "expression": "td:nth-child(4)"
            }
          }
        }
      }
    },
    "search": "{home}/search?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Zooqle",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "6d939c65-4f9c-47b7-864d-6d185b0d5bcd",
    "name": "EZTV",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://eztv.re",
    "author": "lanyuanxiaoyao",
    "description": "EZTV, your one stop source for all your favorite TV shows. FREE downloads! Watch more TV Series than ever. EZTV is releasing daily new episodes. SAFE!",
    "parser": "CSS",
    "rules": {
      "https://eztv\\.re/search/.+": {
        "list": {
          "expression": "table.forum_header_border tr[name=hover]",
          "title": {
            "expression": "td > a[title]"
          },
          "dateTime": {
            "expression": "td:nth-child(5)"
          },
          "link": {
            "expression": "td > a[title]",
            "attribute": "href",
            "prefix": "home"
          },
          "extra": {
            "size": {
              "expression": "td:nth-child(4)"
            }
          }
        }
      }
    },
    "search": "{home}/search/{query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "EZTV",
      "TEST_SEARCH_KEY": "girl"
    }
  },
  {
    "code": "5bfd545b-9cc5-47df-a515-15f7f0d0f68a",
    "name": "iBit",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://ibit.am",
    "author": "lanyuanxiaoyao",
    "description": "IBit - Verified Torrent Search Engine. find &amp; download torrents, movies, music, games, software, tv shows, &amp; other downloads. download a verified bittorrent for free.",
    "parser": "CSS",
    "rules": {
      "https://ibit\\.am/torrent-search/.+": {
        "list": {
          "expression": "table.torrents > tbody > tr",
          "title": {
            "expression": "td:nth-child(1) > a",
            "attribute": "title"
          },
          "dateTime": {
            "expression": "td:nth-child(4)",
            "attribute": "title"
          },
          "link": {
            "expression": "td:nth-child(1) > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "type": {
              "expression": "td:nth-child(3) > a",
              "attribute": "title"
            },
            "size": {
              "expression": "td:nth-child(5) > a",
              "attribute": "title"
            }
          }
        }
      }
    },
    "search": "{home}/torrent-search/{query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#size{${i.size}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "iBit"
    }
  },
  {
    "code": "bbf01d3b-55d8-4a62-9928-58caf01f32df",
    "name": "哔哩哔哩弹幕网",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://bilibili.com",
    "author": "lanyuanxiaoyao",
    "description": "bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐。",
    "parser": "JSON",
    "rules": {
      "http://api\\.bilibili\\.com/x/web-interface/search/all/v2\\?keyword=.+": {
        "list": {
          "expression": "$.data.result[?(@.result_type=='video')].data",
          "title": {
            "expression": "$.title",
            "replace": [
              {
                "regex": "<em.*?>",
                "text": ""
              },
              {
                "regex": "</em>",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": "$.description",
            "replace": [
              {
                "regex": "\n",
                "text": ""
              }
            ]
          },
          "image": {
            "expression": "$.pic",
            "prefix": "http:"
          },
          "author": {
            "expression": "$.author"
          },
          "dateTime": {
            "expression": "$.pubdate",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.arcurl"
          },
          "extra": {
            "view": {
              "expression": "$.play"
            }
          }
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "http://api.bilibili.com/x/web-interface/search/all/v2?keyword={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#view{${i.view}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "哔哩哔哩弹幕网,Bilibili"
    }
  },
  {
    "code": "904562ca-18e3-4e45-87f6-339b50a44879",
    "name": "爱奇艺",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.iqiyi.com/",
    "author": "lanyuanxiaoyao",
    "description": "爱奇艺（iQIYI.COM）是拥有海量、优质、高清的网络视频的大型视频网站，专业的网络视频播放平台。爱奇艺影视内容丰富多元，涵盖电影、电视剧、动漫、综艺、生活、音乐、搞笑、财经、军事、体育、片花、资讯、微电影、儿童、母婴、教育、科技、时尚、原创、公益、游戏、旅游、拍客、汽车、纪录片、爱奇艺自制剧等剧目。视频播放清晰流畅，操作界面简单友好，真正为用户带来“悦享品质”的在线观看体验。",
    "parser": "CSS",
    "rules": {
      "https://so\\.iqiyi\\.com/so/q_.+": {
        "list": {
          "expression": ".qy-search-main .layout-main div[desc] > div[desc=card]",
          "title": {
            "expression": "a.qy-mod-link",
            "attribute": "title"
          },
          "description": {
            "expression": ".qy-search-result-info > .info-lbl:contains(简介) + .info-des"
          },
          "image": {
            "expression": "a.qy-mod-link > img",
            "attribute": "src",
            "prefix": "https:"
          },
          "link": {
            "expression": "a.qy-mod-link",
            "attribute": "href",
            "prefix": "https:"
          }
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://so.iqiyi.com/so/q_{query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "iqiyi, 爱奇艺"
    }
  },
  {
    "code": "9777491c-2a30-43e3-9008-60fb0a0d24a6",
    "name": "100影视网",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.100yingshi.com",
    "author": "lanyuanxiaoyao",
    "description": "100影视网（100yingshi.com），每天搜集互联网最新电影和电视剧，为广大用户免费提供无广告在线观看电影和电视剧服务，及时收录最新、最热、最全的电影大片,高清正版免费看。",
    "parser": "CSS",
    "rules": {
      "https://www\\.100yingshi\\.com/yssearch/.+?----------\\d+---\\.html": {
        "list": {
          "expression": ".index-area li",
          "title": {
            "expression": "p.name"
          },
          "image": {
            "expression": "img",
            "attribute": "src",
            "prefix": "{home}"
          },
          "author": {
            "expression": "p.name + p.actor"
          },
          "dateTime": {
            "expression": "p.actor:nth-child(4)",
            "script": "if (text) {\n    return text.split('/')[0]\n}\nreturn text"
          },
          "link": {
            "expression": "a.link-hover",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "location": {
              "expression": "p.actor:nth-child(4)",
              "script": "if (text) {\n    return text.split('/')[1]\n}\nreturn text"
            },
            "other": {
              "expression": ".other"
            }
          }
        },
        "next": {
          "expression": ".page > a.page_link[title=下一页]",
          "attribute": "href",
          "prefix": "{home}",
          "script": "if (text === params.url) {\n    return ''\n}\nreturn text"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "{home}/yssearch/{query}----------1---.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#datetime{${i.datetime}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "100影视网"
    }
  },
  {
    "code": "404af31f-0fe6-42e8-922b-9f45d628ea99",
    "name": "1231d电影网",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.1231d.com",
    "author": "lanyuanxiaoyao",
    "description": "最好的迅雷电影下载网，分享最新电影，高清电影、综艺、动漫、电视剧、韩剧、港剧、台剧、泰剧、欧美剧、日剧等下载！",
    "parser": "CSS",
    "rules": {
      "https://www\\.1231d\\.com/search/page/\\d+/wd/.+\\.html": {
        "list": {
          "expression": ".vodlist li.searchlist_item",
          "title": {
            "expression": "h4.vodlist_title",
            "replace": [
              {
                "regex": "&nbsp;",
                "text": " "
              }
            ]
          },
          "description": {
            "expression": "p.vodlist_sub:contains(简介)",
            "replace": [
              {
                "regex": "^简介：",
                "text": ""
              }
            ]
          },
          "image": {
            "expression": ".searchlist_img a",
            "attribute": "data-original"
          },
          "author": {
            "expression": "p.vodlist_sub:contains(导演)",
            "replace": [
              {
                "regex": "^导演：",
                "text": ""
              }
            ]
          },
          "link": {
            "expression": "h4.vodlist_title a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "other": {
              "expression": ".searchlist_img .pic_text"
            }
          }
        },
        "next": {
          "expression": "ul.page > a:contains(下一页)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "{home}/search/page/1/wd/{query}.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "1231d电影网"
    }
  },
  {
    "code": "9792b981-b78a-4afe-8657-6fb1cb5ba385",
    "name": "蜗牛影院",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.snailok.com",
    "author": "lanyuanxiaoyao",
    "description": "蜗牛视频为您提供最新电影,好看的电影,新电视剧大全，经典动漫，推荐好看的热门综艺大全全集等免费高清视频在线观看。",
    "parser": "CSS",
    "rules": {
      "https://www\\.snailok\\.com/vodsearch/.+?----------\\d+?---\\.html": {
        "list": {
          "expression": ".col-lg-wide-75 .stui-vodlist__media li",
          "title": {
            "expression": "h3.title"
          },
          "image": {
            "expression": ".lazyload",
            "attribute": "data-original"
          },
          "author": {
            "expression": ".detail p:contains(主演：)",
            "replace": [
              {
                "regex": "主演：",
                "text": ""
              }
            ]
          },
          "link": {
            "expression": "a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "other": {
              "expression": ".pic-text"
            }
          }
        },
        "next": {
          "expression": "ul.stui-page li a:contains(下一页)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://www.snailok.com/vodsearch/{query}----------1---.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "蜗牛影院"
    }
  },
  {
    "code": "90b35a14-d7af-4171-bdae-f9ff3c98e8b7",
    "name": "91美剧",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://91mjw.com",
    "author": "lanyuanxiaoyao",
    "description": "91美剧网，一个可在线观看美剧的视频网站，美剧爱好者的在线美剧天堂。提供高清、流畅、无广告的观看体验。",
    "parser": "CSS",
    "rules": {
      "https://91mjw\\.com/page/\\d+?\\?s=.+": {
        "list": {
          "expression": ".list-content article",
          "title": {
            "expression": "a",
            "attribute": "title"
          },
          "image": {
            "expression": "img",
            "attribute": "data-original"
          },
          "link": {
            "expression": "a",
            "attribute": "href"
          },
          "extra": {
            "other": {
              "expression": ".zhuangtai"
            },
            "score": {
              "expression": ".pingfen"
            }
          }
        },
        "next": {
          "expression": ".pagination .next-page a",
          "attribute": "href"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://91mjw.com/page/1?s={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#score{${i.score}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "91美剧"
    }
  },
  {
    "code": "c0de6c06-ca67-474b-8a8d-23bf14d88866",
    "name": "91影院",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.91cinema.cn",
    "author": "lanyuanxiaoyao",
    "description": "91影院,91视频,91,91视频在线观看,91福利视频,福利在线,手机电影院,免费影院,神马影院,福利区,国产影院",
    "parser": "CSS",
    "rules": {
      "https://www\\.91cinema\\.cn/vsearch/.+?----------\\d+?---\\.html": {
        "list": {
          "expression": "body .item",
          "title": {
            "expression": "h2 > a",
            "attribute": "title"
          },
          "image": {
            "expression": ".ff-img",
            "attribute": "src"
          },
          "author": {
            "expression": ".txtList li:contains(主演：)",
            "replace": [
              {
                "regex": "主演：",
                "text": ""
              }
            ]
          },
          "dateTime": {
            "expression": ".sTime"
          },
          "link": {
            "expression": "h2 > a",
            "attribute": "href"
          },
          "extra": {
            "other": {
              "expression": ".sStyle"
            }
          }
        },
        "next": {
          "expression": ".list-pager-v2 .page-item a[title=下一页]",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://www.91cinema.cn/vsearch/{query}----------1---.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#datetime{${i.datetime}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "91影院"
    }
  },
  {
    "code": "caac0d94-29f4-4a70-afbf-7c71239d6732",
    "name": "豆角电影网",
    "category": "影视",
    "icon": "",
    "target": "SEARCH",
    "home": "https://m.tvb52.com",
    "author": "lanyuanxiaoyao",
    "description": "豆角电影网为您提供最新免费高清电影,迅雷下载,最新电视剧在线观看,视频格式有720P 1024p高清rmvb,及mkv等影音资源-豆角电影网。",
    "parser": "CSS",
    "rules": {
      "https://m\\.doujiaow\\.com/index\\.php\\?m=vod-search-pg-\\d+?-wd-.+?\\.html": {
        "list": {
          "expression": ".ulPicTxt li",
          "title": {
            "expression": ".sTit"
          },
          "image": {
            "expression": "img",
            "attribute": "data-src"
          },
          "author": {
            "expression": ".sTit .sDes:contains(主演：)",
            "replace": [
              {
                "regex": "主演：",
                "text": ""
              }
            ]
          },
          "dateTime": {
            "expression": ".sDes:contains(地区：)",
            "replace": [
              {
                "regex": "地区：",
                "text": ""
              }
            ],
            "script": "if (!text || text === '') return ''\nlet array = text.split('/')\nreturn array[1].trim()"
          },
          "link": {
            "expression": "a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "other": {
              "expression": ".pic a .sStyle"
            },
            "score": {
              "expression": ".sTit .sDes:contains(评分)",
              "replace": [
                {
                  "regex": "评分：",
                  "text": ""
                }
              ]
            },
            "location": {
              "expression": ".sDes:contains(地区：)",
              "replace": [
                {
                  "regex": "地区：",
                  "text": ""
                }
              ],
              "script": "if (!text || text === '') return ''\nlet array = text.split('/')\nreturn array[0].trim()"
            }
          }
        },
        "next": {
          "expression": ".fenye a.pagelink_a:contains(下一页)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://m.doujiaow.com/index.php?m=vod-search-pg-1-wd-{query}.html",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#location{${i.location}}#score{${i.score}}#datetime{${i.datetime}}#other{${i.other}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.image}",
      "SEARCH_LITE_KEYS": "豆角电影网"
    }
  },
  {
    "code": "21288140-5491-4aac-a827-e084bfa70ae2",
    "name": "npm",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.npmjs.com",
    "author": "lanyuanxiaoyao",
    "description": "npm is the world’s largest software registry. Open source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage development as well.",
    "parser": "CSS",
    "rules": {
      "https://www\\.npmjs\\.com/search\\?q=.+": {
        "list": {
          "expression": "main .center aside + div > section",
          "title": {
            "expression": "div.w-80 div:nth-child(1) h3"
          },
          "description": {
            "expression": "div.w-80 h4:contains(Description) + p"
          },
          "avatar": {
            "expression": "div.w-80 h4:contains(Publisher) + div div:nth-child(1) > div > a > img",
            "attribute": "src"
          },
          "author": {
            "expression": "div.w-80 h4:contains(Publisher) + div div:nth-child(1) > a[href]"
          },
          "dateTime": {
            "expression": "div.w-80 h4:contains(Publisher) + div span[title]",
            "script": "let regex = /published\\s*(.+?)\\s*•\\s*(.+)$/\nlet result = text.match(regex)\nif (result && result.length > 1) {\n    return result[2]\n}\nreturn ''"
          },
          "link": {
            "expression": "div.w-80 div:nth-child(1) > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "version": {
              "expression": "div.w-80 h4:contains(Publisher) + div span[title]",
              "script": "let regex = /published\\s*(.+?)\\s*•\\s*(.+)$/\nlet result = text.match(regex)\nif (result && result.length > 1) {\n    return result[1]\n}\nreturn ''"
            }
          }
        },
        "next": {
          "expression": "main .center aside + div > section + div a:contains(»)",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://www\\.npmjs\\.com/package/.+": {
        "text": {
          "expression": "html",
          "title": {
            "expression": "#top span[title]",
            "attribute": "title"
          },
          "description": {
            "expression": "head meta[name=description]",
            "attribute": "content"
          },
          "dateTime": {
            "expression": "#top div:has(h3:contains(Install)) > div > h3:contains(Last publish) + p time",
            "attribute": "title"
          },
          "extra": {
            "version": {
              "expression": "#top div:has(h3:contains(Install)) > div > h3:contains(Version) + p"
            },
            "size": {
              "expression": "#top div:has(h3:contains(Install)) > div > h3:contains(Unpacked) + p"
            },
            "number": {
              "expression": "#top div:has(h3:contains(Install)) > div > h3:contains(Total Files) + p"
            },
            "license": {
              "expression": "#top div:has(h3:contains(Install)) > div > h3:contains(License) + p"
            }
          }
        },
        "list": {
          "expression": "#top > div > h3:contains(Install) + p:has(code)",
          "content": {
            "expression": "svg + code[title]"
          }
        }
      }
    },
    "search": "{home}/search?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#author{${i.author}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.avatar}",
      "SEARCH_LITE_KEYS": "npm,JavaScript",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "a2387be5-1b9d-41df-b28a-246c972e492f",
    "name": "Maven (Sonatype)",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://search.maven.org",
    "author": "lanyuanxiaoyao",
    "description": "Official search of Maven Central Repository.",
    "parser": "JSON",
    "rules": {
      "https://search\\.maven\\.org/solrsearch/select\\?q=.+": {
        "list": {
          "expression": "$.response.docs",
          "title": {
            "expression": "$.a"
          },
          "description": {
            "expression": "$.repositoryId",
            "prefix": "From: "
          },
          "author": {
            "expression": "$.g"
          },
          "dateTime": {
            "expression": "$.timestamp",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$",
            "script": "let data = JSON.parse(text)\nreturn 'https://search.maven.org/artifact/' + data.g + '/' + data.a + '/' + data.latestVersion + '/jar'"
          },
          "extra": {
            "version": {
              "expression": "$.latestVersion"
            }
          }
        },
        "next": {
          "expression": "$.response.start",
          "script": "let result = /(.+start=)\\d+(&.+)/g.exec(params.url)\nif (result) {\n    return result[1] + (parseInt(text) + 1) + result[2]\n}\nreturn \"\""
        }
      },
      "https://search\\.maven\\.org/artifact/.+/jar": {
        "parser": "JS",
        "text": {
          "expression": "return text",
          "title": {
            "script": "let result = /https:\\/\\/search\\.maven\\.org\\/artifact\\/(.+?)\\/(.+?)\\/(.+?)\\/jar/g.exec(params.url)\nif (result) {\n    return result[1] + ':' + result[2] + ':' + result[3]\n}\nreturn ''"
          }
        },
        "list": {
          "expression": "let result = /https:\\/\\/search\\.maven\\.org\\/artifact\\/(.+?)\\/(.+?)\\/(.+?)\\/jar/g.exec(params.url)\nif (result) {\n    let groupId = result[1]\n    let name = result[2]\n    let version = result[3]\n    return [\n        JSON.stringify({\n            title: 'Apache Maven',\n            content: '<dependency>\\n' +\n                '  <groupId>' + groupId + '</groupId>\\n' +\n                '  <artifactId>' + name + '</artifactId>\\n' +\n                '  <version>' + version + '</version>\\n' +\n                '</dependency>'\n        }),\n        JSON.stringify({\n            title: 'Gradle Groovy DSL',\n            content: 'implementation \\'' + groupId + ':' + name + ':' + version + '\\''\n        }),\n        JSON.stringify({\n            title: 'Gradle Kotlin DSL',\n            content: 'implementation(\"' + groupId + ':' + name + ':' + version + '\")'\n        }),\n        JSON.stringify({\n            title: 'Scala SBT',\n            content: 'libraryDependencies += \"' + groupId + '\" % \"' + name + '\" % \"' + version + '\"'\n        }),\n        JSON.stringify({\n            title: 'Apache Ivy',\n            content: '<dependency org=\"' + groupId + '\" name=\"' + name + '\" rev=\"' + version + '\" />'\n        }),\n        JSON.stringify({\n            title: 'Groovy Grape',\n            content: '@Grapes(\\n' +\n                '  @Grab(group=\\'' + groupId + '\\', module=\\'' + name + '\\', version=\\'' + version + '\\')\\n' +\n                ')'\n        }),\n        JSON.stringify({\n            title: 'Leiningen',\n            content: '[' + groupId + '/' + name + ' \"' + version + '\"]'\n        }),\n        JSON.stringify({\n            title: 'Apache Buildr',\n            content: '\\'' + groupId + ':' + name + ':jar:' + version + '\\''\n        }),\n        JSON.stringify({\n            title: 'PURL',\n            content: 'pkg:maven/' + groupId + '/' + name + '@' + version\n        }),\n        JSON.stringify({\n            title: 'Bazel',\n            content: 'maven_jar(\\n' +\n                '    name = \"' + name + '\",\\n' +\n            '    artifact = \"'+groupId + ':' + name + ':' + version + '\",\\n' +\n                ')'\n        })\n    ]\n}\nreturn ''",
          "title": {
            "expression": "return JSON.parse(text)['title']"
          },
          "content": {
            "expression": "return JSON.parse(text)['content']"
          }
        },
        "options": [
          "OPEN_WITHOUT_DOWNLOAD"
        ]
      }
    },
    "search": "{home}/solrsearch/select?q={query}&start=0&rows=20",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#author{${i.author}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Maven (Sonatype),mvn (Sonatype)",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "3a3d7617-80ef-44f7-a369-9032f13aa9a0",
    "name": "Github",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://github.com",
    "author": "lanyuanxiaoyao",
    "description": "GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.",
    "parser": "JSON",
    "tags": {
      "Trending Today": "{home}/trending?since=daily",
      "Trending This Week": "{home}/trending?since=weekly",
      "Trending This Month": "{home}/trending?since=monthly"
    },
    "rules": {
      "https://api\\.github\\.com/search/repositories\\?q=.+?&per_page=20&page=\\d+": {
        "list": {
          "expression": "$.items",
          "title": {
            "expression": "$.full_name"
          },
          "description": {
            "expression": "$.description"
          },
          "dateTime": {
            "expression": "$.updated_at",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.html_url"
          },
          "extra": {
            "star": {
              "expression": "$.stargazers_count"
            },
            "language": {
              "expression": "$.language"
            },
            "license": {
              "expression": "$.license.name"
            }
          }
        },
        "next": {
          "script": "let result = /(.*page=)(\\d+)$/g.exec(params.url)\nif (result) return result[1] + (parseInt(result[2]) + 1)\nreturn ''\n"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "https://api.github.com/search/repositories?q={query}&per_page=20&page=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#star{${i.star}}#language{${i.language}}#license{${i.license}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Github",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "19880471-f92d-4d14-9705-45c9e8ded084",
    "name": "Gitee",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://gitee.com",
    "author": "lanyuanxiaoyao",
    "description": "Gitee.com 是 OSCHINA.NET 推出的代码托管平台，支持 Git 和 SVN，提供免费的私有仓库托管。目前已有超过 500 万的开发者选择 Gitee。",
    "parser": "JSON",
    "rules": {
      "https://gitee\\.com/api/v5/search/repositories\\?q=.+?&per_page=20&page=\\d+": {
        "list": {
          "expression": "$",
          "title": {
            "expression": "$.human_name"
          },
          "description": {
            "expression": "$.description"
          },
          "dateTime": {
            "expression": "$.updated_at",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.html_url"
          },
          "extra": {
            "star": {
              "expression": "$.stargazers_count"
            },
            "language": {
              "expression": "$.language"
            },
            "license": {
              "expression": "$.license"
            }
          }
        },
        "next": {
          "script": "let result = /(.*page=)(\\d+)$/g.exec(params.url)\nif (result) return result[1] + (parseInt(result[2]) + 1)\nreturn ''\n"
        },
        "options": [
          "OPEN_DIRECTLY"
        ]
      }
    },
    "search": "{home}/api/v5/search/repositories?q={query}&per_page=20&page=1",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#star{${i.star}}#language{${i.language}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Gitee,码云",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "de83842d-4d2f-485c-be5a-02ad2a443664",
    "name": "Docker Hub",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://hub.docker.com",
    "author": "lanyuanxiaoyao",
    "description": "Docker Hub is the world's easiest way to create, manage, and deliver your teams' container applications.",
    "parser": "JSON",
    "headers": {
      "Search-Version": "v3",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
    },
    "rules": {
      "https://(store|hub)\\.docker\\.com/api/content/v1/products/search/\\?.*q=.+": {
        "list": {
          "expression": "$.summaries",
          "title": {
            "expression": "$.name"
          },
          "description": {
            "expression": "$.short_description"
          },
          "avatar": {
            "expression": "$.logo_url.small",
            "script": "return text === '' ? '' : text"
          },
          "author": {
            "expression": "$.publisher.name"
          },
          "dateTime": {
            "expression": "$.updated_at",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.slug",
            "prefix": "https://hub.docker.com/r/"
          },
          "extra": {
            "star": {
              "expression": "$.star_count"
            }
          }
        },
        "prev": {
          "expression": "$.previous",
          "replace": [
            {
              "regex": "store",
              "text": "hub"
            }
          ]
        },
        "next": {
          "expression": "$.next",
          "replace": [
            {
              "regex": "store",
              "text": "hub"
            }
          ]
        }
      },
      "https://hub\\.docker\\.com/r/.+": {
        "parser": "JS",
        "text": {
          "expression": "return text",
          "title": {
            "expression": "let result = /https:\\/\\/hub\\.docker\\.com\\/r\\/(.+)$/g.exec(params.url)\nif (result) {\n    return result[1]\n}\nreturn \"\"\n"
          }
        },
        "list": {
          "expression": "let result = /https:\\/\\/hub\\.docker\\.com\\/r\\/(.+)$/g.exec(params.url)\nif (result) {\n    return [result[1]]\n}\nreturn \"\"\n",
          "title": {
            "expression": "return 'Pull'"
          },
          "content": {
            "expression": "return 'docker pull ' + text"
          }
        },
        "options": [
          "OPEN_WITHOUT_DOWNLOAD"
        ]
      }
    },
    "search": "{home}/api/content/v1/products/search/?type=image&q={query}&page=1&page_size=50",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#star{${i.star}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.avatar}",
      "SEARCH_LITE_KEYS": "Docker Hub",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "651c444e-1c66-457c-895d-2eea27c9a306",
    "name": "PyPI",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://pypi.org",
    "author": "lanyuanxiaoyao",
    "description": "The Python Package Index (PyPI) is a repository of software for the Python programming language.",
    "parser": "CSS",
    "rules": {
      "https://pypi\\.org/search/\\?q=.+": {
        "list": {
          "expression": "#content ul.unstyled[aria-label] > li",
          "title": {
            "expression": "a.package-snippet h3 span.package-snippet__name"
          },
          "description": {
            "expression": "a.package-snippet p.package-snippet__description"
          },
          "dateTime": {
            "expression": "a.package-snippet h3 span.package-snippet__released time",
            "attribute": "datetime",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "a.package-snippet",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "version": {
              "expression": "a.package-snippet h3 span.package-snippet__version"
            }
          }
        },
        "next": {
          "expression": "#content .button-group--pagination > a:contains(Next)",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://pypi\\.org/project/.+": {
        "text": {
          "expression": "#content",
          "title": {
            "expression": ".banner h1.package-header__name"
          },
          "description": {
            "expression": ".site-container p.package-description__summary"
          },
          "dateTime": {
            "expression": ".banner .package-header__date time",
            "attribute": "datetime",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          }
        },
        "list": {
          "expression": "#content .banner",
          "title": {
            "script": "return 'Install'"
          },
          "content": {
            "expression": "#pip-command"
          }
        }
      }
    },
    "search": "{home}/search/?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "PyPI,Python",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "2ebf794a-fb1c-4f55-9737-0db9da3878fe",
    "name": "Ruby Gems",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://rubygems.org",
    "author": "lanyuanxiaoyao",
    "description": "RubyGems.org 是 Ruby 社区的 Gem 托管服务。让你能便捷、快速的发布、管理你的 Gem 以及安装它们。提供 API 查阅可用 Gem 的详细资料。",
    "parser": "XPATH",
    "rules": {
      "https://rubygems\\.org/search\\?.*query=.+": {
        "list": {
          "expression": "//main[@class='main--interior']//a[@class='gems__gem']",
          "title": {
            "expression": "//h2[@class='gems__gem__name']/text()",
            "replace": [
              {
                "regex": "\\s",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": "//p[@class='gems__gem__desc t-text']"
          },
          "link": {
            "expression": "./@href",
            "prefix": "{home}"
          },
          "extra": {
            "version": {
              "expression": "//span[@class='gems__gem__version']",
              "replace": [
                {
                  "regex": "\\s",
                  "text": ""
                }
              ]
            },
            "star": {
              "expression": "//p[@class='gems__gem__downloads__count']",
              "replace": [
                {
                  "regex": "\\s",
                  "text": ""
                },
                {
                  "regex": "Downloads",
                  "text": ""
                }
              ]
            }
          }
        },
        "next": {
          "expression": "//main[@class='main--interior']//nav[@class='pagination']/span[@class='next']/a/@href",
          "prefix": "{home}"
        }
      },
      "https://rubygems\\.org/gems/.+": {
        "text": {
          "expression": "//main[@class='main--interior']",
          "title": {
            "expression": "//h1[@class='t-display page__heading']/text()"
          }
        },
        "list": {
          "expression": "//main[@class='main--interior']//div[@class='gem__aside l-col--r--pad']//input[@class='gem__code']",
          "content": {
            "expression": "./@value"
          }
        }
      }
    },
    "search": "{home}/search?query={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#star{${i.star}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "RubyGems",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "9b429345-b2a3-4530-b726-d3395b2221a4",
    "name": "pub",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://pub.dev",
    "author": "lanyuanxiaoyao",
    "description": "Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.",
    "parser": "CSS",
    "rules": {
      "https://pub\\.dev/packages\\?q=.+": {
        "list": {
          "expression": "main > .container > .packages > .packages-item",
          "title": {
            "expression": "h3.packages-title",
            "replace": [
              {
                "regex": "(^\\s+)|\\n+",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": "p.packages-description"
          },
          "dateTime": {
            "expression": "p.packages-metadata > span.packages-metadata-block span"
          },
          "link": {
            "expression": "h3.packages-title > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "star": {
              "expression": ".packages-scores > .packages-score-like span.packages-score-value-number"
            },
            "version": {
              "expression": "p.packages-metadata > span.packages-metadata-block a"
            }
          }
        },
        "next": {
          "expression": "ul.pagination > li > a[rel=next]",
          "attribute": "href",
          "prefix": "{home}"
        }
      }
    },
    "search": "{home}/packages?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#star{${i.star}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "pub,Flutter",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "3e0cc26f-a96a-4f23-ac1c-48b9b87d825b",
    "name": "pub (CN)",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://pub.flutter-io.cn",
    "author": "lanyuanxiaoyao",
    "description": "Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.",
    "parser": "CSS",
    "rules": {
      "https://pub\\.flutter-io\\.cn/packages\\?q=.+": {
        "list": {
          "expression": "main > .container > .packages > .packages-item",
          "title": {
            "expression": "h3.packages-title",
            "replace": [
              {
                "regex": "(^\\s+)|(\\s+$)|\\n+",
                "text": ""
              }
            ]
          },
          "description": {
            "expression": "p.packages-description"
          },
          "dateTime": {
            "expression": "p.packages-metadata > span.packages-metadata-block span"
          },
          "link": {
            "expression": "h3.packages-title > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "star": {
              "expression": ".packages-scores > .packages-score-like span.packages-score-value-number"
            },
            "version": {
              "expression": "p.packages-metadata > span.packages-metadata-block a"
            }
          }
        },
        "next": {
          "expression": "ul.pagination > li > a[rel=next]",
          "attribute": "href",
          "prefix": "{home}"
        }
      }
    },
    "search": "{home}/packages?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#star{${i.star}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "pub (CN),Flutter (CN)",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "055ae385-097a-4598-8c7b-e3d43e1f404e",
    "name": "nuget",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://www.nuget.org",
    "author": "lanyuanxiaoyao",
    "description": "The NuGet Gallery is the central package repository for NuGet, the package manager for .NET.",
    "parser": "CSS",
    "rules": {
      "https://www\\.nuget\\.org/packages\\?.*q=.+": {
        "list": {
          "expression": "section[role=main] > .list-packages > article.package",
          "title": {
            "expression": "a.package-title"
          },
          "description": {
            "expression": ".package-details",
            "replace": [
              {
                "regex": "(^\\s+)|(\\s+$)|\\n+",
                "text": ""
              }
            ]
          },
          "avatar": {
            "expression": ".col-package-icon > img",
            "attribute": "src"
          },
          "author": {
            "expression": ".package-header > span.package-by",
            "replace": [
              {
                "regex": "(^\\s+)|(\\s+$)|\\n+",
                "text": ""
              },
              {
                "regex": "^by: ",
                "text": ""
              },
              {
                "regex": "[\\n\\s]+",
                "text": ","
              }
            ]
          },
          "dateTime": {
            "expression": "ul.package-list > li span[data-datetime]"
          },
          "link": {
            "expression": "a.package-title",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "version": {
              "expression": "ul.package-list > li > span.icon-text:has(.ms-Icon--Flag) > span"
            },
            "download": {
              "expression": "ul.package-list > li > span.icon-text:has(.ms-Icon--Download)",
              "replace": [
                {
                  "regex": "(^\\s+)|(\\s+$)|\\n+",
                  "text": ""
                },
                {
                  "regex": " total downloads$",
                  "text": ""
                }
              ]
            }
          }
        },
        "next": {
          "expression": "ul.pager > li.next > a",
          "attribute": "href",
          "prefix": "{home}"
        }
      }
    },
    "search": "{home}/packages?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#author{${i.author}}#download{${i.download}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "${i.avatar}",
      "SEARCH_LITE_KEYS": "Nuget,C#",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "e0c9c31c-14c6-4c0d-a66f-b2a06e8b1a82",
    "name": "crates.io",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://crates.io",
    "author": "lanyuanxiaoyao",
    "description": "cargo is the package manager and crate host for rust",
    "parser": "JSON",
    "rules": {
      "https://crates\\.io/api/v1/crates\\?.*q=.+": {
        "list": {
          "expression": "$.crates",
          "title": {
            "expression": "$.name"
          },
          "description": {
            "expression": "$.description"
          },
          "dateTime": {
            "expression": "$.updated_at",
            "script": "if (!text || text === '') return text\nlet date = /^\\d+$/.test(text) ? new Date(parseInt(text) < 10000000000 ? parseInt(text) * 1000 : parseInt(text)) : new Date(text)\nif (date.getFullYear()) {\n    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()\n}\nreturn text"
          },
          "link": {
            "expression": "$.id",
            "attribute": "href",
            "replace": [
              {
                "regex": "^",
                "text": "https://crates.io/crates/"
              }
            ]
          },
          "extra": {
            "version": {
              "expression": "$.newest_version"
            },
            "download": {
              "expression": "$.downloads"
            }
          }
        },
        "next": {
          "expression": "$.meta.next_page",
          "script": "if (text === null || text === '') return ''\nreturn 'https://crates.io/api/v1/crates' + text"
        }
      }
    },
    "search": "{home}/api/v1/crates?page=1&per_page=10&q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}#download{${i.download}}#datetime{${i.datetime}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Cargo,Rust",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "23934197-14c3-4ad9-879f-ca27527711b2",
    "name": "LuaRocks",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://luarocks.org",
    "author": "lanyuanxiaoyao",
    "description": "A website for submitting and distributing Lua rocks",
    "parser": "CSS",
    "rules": {
      "https://luarocks\\.org/search\\?q=.+": {
        "list": {
          "expression": "main.search_page ul.module_list_widget > li.module_row",
          "title": {
            "expression": ".main > a.title"
          },
          "description": {
            "expression": ".summary"
          },
          "author": {
            "expression": ".main > span.author > a"
          },
          "link": {
            "expression": ".main > a.title",
            "attribute": "href",
            "replace": [
              {
                "regex": "^",
                "text": "https://luarocks.org"
              }
            ]
          },
          "extra": {
            "download": {
              "expression": ".main > span.downloads > span.value"
            }
          }
        }
      }
    },
    "search": "{home}/search?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#author{${i.author}}#download{${i.download}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "LuaRocks",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "97081e97-54e1-49ad-8558-4adce0f99f9f",
    "name": "Packagist",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://packagist.org",
    "author": "lanyuanxiaoyao",
    "description": "The PHP Package Repository.",
    "parser": "JSON",
    "rules": {
      "https://packagist\\.org/search\\.json\\?q=.+": {
        "list": {
          "expression": "$.results",
          "title": {
            "expression": "$.name"
          },
          "description": {
            "expression": "$.description"
          },
          "link": {
            "expression": "$.url"
          },
          "extra": {
            "download": {
              "expression": "$.downloads"
            },
            "star": {
              "expression": "$.favers"
            }
          }
        },
        "next": {
          "expression": "$.next"
        }
      }
    },
    "search": "{home}/search.json?q={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#star{${i.star}}#download{${i.download}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Packagist,PHP",
      "TEST_SEARCH_KEY": "kafka"
    }
  },
  {
    "code": "407e4687-094e-4ce4-86ef-bb30e2cf6612",
    "name": "Gradle Plugins",
    "category": "开发",
    "icon": "",
    "target": "SEARCH",
    "home": "https://plugins.gradle.org",
    "author": "lanyuanxiaoyao",
    "description": "Search Gradle plugins.",
    "parser": "CSS",
    "rules": {
      "https://plugins\\.gradle\\.org/search\\?term=.+": {
        "list": {
          "expression": "#search-results > tbody > tr",
          "title": {
            "expression": ".name > h3.plugin-id > a"
          },
          "description": {
            "expression": ".name > h3.plugin-id + p"
          },
          "dateTime": {
            "expression": ".version > .date"
          },
          "link": {
            "expression": ".name > h3.plugin-id > a",
            "attribute": "href",
            "prefix": "{home}"
          },
          "extra": {
            "version": {
              "expression": ".version > .latest-version"
            }
          }
        },
        "prev": {
          "expression": ".page-link a:contains(Previous)",
          "attribute": "href",
          "prefix": "{home}"
        },
        "next": {
          "expression": ".page-link a:contains(Next)",
          "attribute": "href",
          "prefix": "{home}"
        }
      },
      "https://plugins\\.gradle\\.org/plugin/.+": {
        "text": {
          "expression": ".plugin-detail > .detail",
          "title": {
            "expression": "h1"
          },
          "description": {
            "expression": ".plugin-info p.description-text"
          },
          "author": {
            "expression": ".plugin-owner p > a",
            "script": "if (text) return text.trim()\nreturn \"\""
          }
        },
        "list": {
          "expression": ".tabpanel .tab-content .tab-pane",
          "title": {
            "expression": "pre:eq(0)",
            "attribute": "class"
          },
          "content": {
            "expression": "pre:eq(0) > code"
          }
        }
      }
    },
    "search": "{home}/search?term={query}",
    "properties": {
      "SEARCH_LITE_SUPPORT": "true",
      "SEARCH_LITE_TITLE_TEMPLATE": "#title{${i.title}}#version{${i.version}}",
      "SEARCH_LITE_DESC_TEMPLATE": "#description{${i.description}}#link{${i.link}}",
      "SEARCH_LITE_IMAGE_TEMPLATE": "",
      "SEARCH_LITE_KEYS": "Gradle",
      "TEST_SEARCH_KEY": "kafka"
    }
  }
]